package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.BaseRegion;
import com.zuipin.util.Pagination;
import com.zuipin.vo.BaseRegionVo;

/**
 *  基础资料-地区mapper
  * @ClassName: BaseRegionMapper
  * @Description: TODO
  * @author robot
  * @date 2017年04月257日 08:30:25
  *
 */
@Mapper
public interface BaseRegionMapper {
	/**
	  * 查询基础资料-地区
	  * @Title: findById
	  * @author robot
	  * @date 2017年04月257日 08:30:25
	  * @param id,
	  * @return
	  * @return BaseRegion
	 */
	public BaseRegion findById( Integer id);
	
	/**
	  * 插入基础资料-地区操作
	  * @Title: insert
	  * @author robot
	  * @date 2017年04月257日 08:30:25
	  * @param baseRegion
	  * @return void
	 */
	public void insert(BaseRegion baseRegion);
	
	/**
	  *  更新基础资料-地区操作
	  * @Title: update
	  * @author robot
	  * @date 2017年04月257日 08:30:25
	  * @param baseRegion
	  * @return void
	 */
	public void update(BaseRegion baseRegion);
	
	/**
	  * 删除基础资料-地区
	  * @Title: delete
	  * @author robot
	  * @date 2017年04月257日 08:30:25
	  * @param id,
	  * @return void
	 */
	public void delete( Integer id);
	
	/**
	 * 搜索基础资料-地区, 并自动分页
	  *  @Title: seachBaseRegion
	  * @author robot
	  * @date 2017年04月257日 08:30:25
	  * @param baseRegion
	  * @param page
	  * @return
	  * @return List<BaseRegion>
	 */
	public List<BaseRegion> seachBaseRegion(@Param("baseRegion") BaseRegion baseRegion, @Param("page") Pagination page);
	
	
	/**
	 * @功能描述：按地区编号查询地区
	 * @作者 : cjj 
	 * @创建时间 : 2017年4月25日上午10:24:46
	 * @param code
	 * @return
	*/
	public BaseRegion findByCode(@Param("code") String code);
	/**
	 * @功能描述：按父地区编号查询子地区
	 * @作者 : cjj 
	 * @创建时间 : 2017年4月25日上午10:25:05
	 * @param parentCode
	 * @return
	*/
	public List<BaseRegionVo> findByParentCode(@Param("parentCode") String parentCode);
	
	/**
	 * @功能描述：查询所有地区
	 * @作者 : cjj 
	 * @创建时间 : 2017年4月25日上午10:26:16
	 * @return
	*/
	public List<BaseRegion> findAll();
	
	/**
	 * @功能描述：按等级查询地区
	 * @作者 : cjj 
	 * @创建时间 : 2017年4月25日下午1:56:46
	 * @param level
	 * @return
	*/
	public List<BaseRegion> findByLevel(@Param("regionLevel") Integer level);

	public List<BaseRegionVo> findChilds(@Param("parentCode") String parentCode);
	
	
}